package main

import (
	"fmt"
	"strconv"
	"strings"
	//	package_alias "D1/basic/04_test_init"
)

// init 函数在main函数之前自动执行，且可以定义多个
// 普通函数被调用才会执行
// main 函数
// main.go 是整个项目的主入口；package 要设置为main；具体执行的方法需要放在main方法中

func main() {

	str := "使劲儿abc"

	fmt.Println(len(str))

	// 拼接
	var str1 = "heelo"
	var str2 = "使劲"

	fmt.Println(str2, str1)
	fmt.Println(str2, ":", str1)

	var str3 = fmt.Sprintf("%s  %s", str1, str2)
	fmt.Println(str3)

	// 分割转换
	var str4 = "986.3231.12"
	var arr = strings.Split(str4, ".")
	fmt.Println(arr)

	// join
	var str5 = strings.Join(arr, "-")
	fmt.Println(str5)

	// 遍历
	// 以 rune 类型进行循环
	var str6 = "hello this us 123"
	//range循环第一个值返回 index | key
	fmt.Println("--------------")
	for index, value := range str6 {
		fmt.Println(index, value)
	}

	// index 不需要，可以省略
	fmt.Println("--------------")
	for _, value2 := range str6 {
		fmt.Println(string(value2))
	}

	// 数字类型转换为字符串类型
	var num1 = 20
	var str7 = strconv.Itoa(num1)
	fmt.Printf("%T %s \n", str7, str7)

	var num2 = 123.215631231
	var str8 = strconv.FormatFloat(num2, 'f', 2, 64)
	fmt.Println(str8)

	// string to int
	var str9 = "1001"
	var num3, _ = strconv.Atoi(str9)
	fmt.Println(num3)

}
